node

您所在的位置:网站首页 node gyp和node -v版本不一致 node

node

#node| 来源: 网络整理| 查看: 265

翻译自:nodejs/node-gyp:Node.js native addon build tool

node-gyp - Node.js 本地插件构建工具

node-gyp是用Node.js编写的跨平台命令行工具,用于为Node.js编译本机插件。它包含gyp-next项目的供应商副本,该副本以前由Chromium团队使用,已扩展用来支持Node.js本机插件的开发。

请注意,node-gyp并不用于构建Node.js本身。

支持Node.js的多个目标版本(0.8,...,4、5、6等),无需顾及系统安装的版本(node-gyp会下载目标版本所需的开发文件或头文件)。

特性 各个受支持平台都使用相同的构建命令运行 支持不同的Node.js目标版本 安装

你可以使用npm安装node-gyp:

npm install -g node-gyp

根据你的操作系统,你需要安装:

在Unix上 Python v2.7, v3.5, v3.6, v3.7, or v3.8 make 一个合适的C/C++编译器工具链,像GCC 在macOS上

注意:如果你的Mac升级到macOS Catalina(10.15),请阅读macOS_Catalina.md.。

Python v2.7, v3.5, v3.6, v3.7, or v3.8 Xcode 你需要通过运行xcode-select --install来安装XCode Command Line Tools(XCode 命令行工具)。或者,你已经安装了完整的Xcode,你可以在菜单Xcode -> Open Developer Tool -> More Developer Tools...(Xcode -> 打开开发者工具 -> 更多开发者工具...)下找到它们。此步骤将安装clang,clang++和make。 在Windows上

从Microsoft Store软件包中安装最新版本的Python。

选项1

通过提升权限的PowerShell或CMD.exe(以管理员运行)来使用微软的windows-build-tools安装所有必需的工具和配置。 npm install --global --production windows-build-tools

选项2

安装工具并手动配置

安装 Visual C++ 构建环境:Visual Studio Build Tools(使用“Visual C++ 构建工具”工作负载)或 Visual Studio 2017 Community(使用“C++桌面开发”工作负载)

启动cmd,npm config set msvs_version 2017

如果上述步骤对你没用,请访问微软的Windows Node.js指南以获取其他提示。

以本地 ARM 上的 Windows 10 上的 ARM64 Node.js 为目标,请添加“ARM64的Visuall C++ 编译器和库”和“ARM64的 Visual C++ ATL”组件。

配置 Python 依赖项

node-gyp要求你安装以下其中一个兼容的Python版本: v2.7, v3.5, v3.6, v3.7, or v3.8。如果你安装了多个Python版本,你可以用以下方式之一确定一个node-gyp可以使用的Python版本

通过设置--python命令行选项,例如: node-gyp --python /path/to/executable/python 如果用npm的方式调用node-gyp,并且你安装了多个版本的Python,那么你可以设置npm的'python'配置键为适当的值。 npm config set python /path/to/executable/python 如果PYTHON环境变量设置为一个Python可执行文件的路径,那么该版本将会被使用,如果它是一个兼容的版本的话。 如果将环境变量NODE_GYP_FORCE_PYTHON设置为Python可执行文件的路径,它将被用来代替其他所有已配置或内置Python搜索路径。如果它不是一个兼容版本,将不会完成进一步的搜索。 如何使用

要编译本地插件,首先转到它的根目录:

cd my_node_addon

下一步是为当前平台生成合适的项目构建文件。为此使用下列命令:

node-gyp configure

对Visual C++ Build Tools 2015自动侦测失败,所以需要添加--msvs_version=2015(用npm运行如上配置时不需要):

node-gyp configure --msvs_version=2015

注:configure这一步寻找了在当前目录的binding.gyp文件去处理。往下看以获取创建binding.gyp的指示。

现在你将会有Makefile(在Unix平台上)或者是在build/目录中的vcxproj文件(在Windows上)。接下来,调用build命令:

node-gyp build

现在你有了你的已编译的.node捆绑文件!已编译的捆绑文件以build/Debug/还是以build/Release/结束,取决于构建模式。至此,您可以使用带有Node.js的.node文件并运行测试! 注:创建捆绑文件的调试版本,当运行configure,build,或者rebuild命令时经过--debug(或者-d)开关。(通过--debug/-d开关运行configure,build,或者rebuild命令?)

binding.gyp文件

binding.gyp文件以类似于JSON的格式描述了构建模块的配置。这个文件和package.json都在包的根目录下。

一个适用于构建Node.js插件的准gyp文件应该长这样:

{ "targets": [ { "target_name": "binding", "sources": [ "src/binding.cc" ] } ] } 延伸阅读

一些Node.js本地插件和编写gyp配置文件的补充资源:

"Going Native" a nodeschool.io tutorial "Hello World" node addon example gyp user documentation gyp input format reference "binding.gyp" files out in the wild wiki page Commands(命令)

node-gyp 响应以下命令:

命令 描述 help 显示帮助日志 build 调用make/msbuild.exe并且构建本地插件 clean 删除build目录,如果存在 configure 为当前平台生成项目构建文件 rebuild 连续运行clean,configure和build install 为给定版本安装Node.js头文件 list 列出当前已安装的Node.js头版本 remove 为给定版本移除Node.js头文件 Command Options(命令项)

node-gyp接受以下命令选项:

命令 描述 -j n,--jobs n 并行运行make。max值将使用所有可用的CPU内核 --target=v6.2.1 要为其构建的Node.js版本(默认为process.version) --silly,--loglevel=silly 记录所有进度到控制台 --verbose,--loglevel=verbose 记录大部分进度到控制台 --silent,--loglevel=silent 不记录任何东西进行控制台 debug,--debug 进行调试构建(默认为Release) --release, --no-debug 制作发布版本 -C $dir, --directory=$dir 在不同的目录运行命令 --make=$make 复盖make命令(e.g. gmake) --thin=yes 启用精简数据库 --arch=$arch 设置目标架构(例如ia32) --tarball=$path 从本地压缩包获取标头 --devdir=$path SDK下载目录(默认是操作系统缓存目录) --ensure 如果已经存在,不重装头文件 -dist-url=$url 从自定义网址下载标题压缩包 --proxy=$url 设置HTTP(S)代理以下载标头压缩包 --noproxy=$urls 设置网址以在下载标头压缩包时忽略代理 --cafile=$cafile 覆盖默认的CA链(下载压缩包) --nodedir=$path 设置节点源代码的路径 --python=$path 设置Python二进制文件的路径 --msvs_version=$version 设置Visual Studio版本(仅Windows) --solution=$solution 配置 环境变量

将格式npm_config_OPTION_NAME用于上面列出的任何命令选项(选项名称中的短划线应替换为下划线)。

例如,例如,要将devdir设置为/tmp/.gyp,您将: 在Unix上运行:

export npm_config_devdir=/tmp/.gyp

或者在Windows上运行:

set npm_config_devdir=c:\temp\.gyp npm配置

将格式OPTION_NAME用于上面列出的任何命令选项。

例如,要将devdir设置为/tmp/.gyp,可以运行:

npm config set [--global] devdir /tmp/.gyp

注:通过npm设置的配置仅在当node-gyp通过npm运行时使用,不是直接运行node-gyp。

证书

node-gyp在MIT证书下可用。详情见证书文件



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3